<template>
		<view style="width: 100%;"
			@tap="open"
		>
			<u--input
				v-model="labels"
				suffixIcon="arrow-right"
				suffixIconStyle="color: #909399"
				disabled
				disabledColor="#ffffff"
				:placeholder="placeholder"
				border="none"
			></u--input>

			<u-action-sheet
				:show="show"
				@close="show = false"
			>
			<view class="cu-bar bg-white">
				<view class="action text-blue" @tap="show=false">取消</view>
				<view class="action text-green" @tap="selectUsers">确定</view>
			</view>
			<view>
				  <ly-tree :tree-data="data"
					:props="props" 
					node-key="id" 
					:checkOnClickNode ="true"
					:showRadio="showRadio"
					:show-checkbox ="showCheckBox"
					:checkOnlyLeaf = "checkOnlyLeaf"
					ref="userTree" />
			</view>
		</u-action-sheet>
	</view>
</template>

<script>
	import userService from "@/api/sys/userService"
	
	export default {
		data() {
			return {
				show: false,
				labels:'',
				data: [],
				treeList: []
			};
		},
		props: {
		    limit: Number,
		    value: String,
		    size: String,
			placeholder: {
			  type: String,
			  default: () => { return '请选择用户' }
			},
		    readonly: {
		      type: Boolean,
		      default: () => { return false }
		    },
			checkOnlyLeaf: {
		      type: Boolean,
		      default: () => { return false }
		    },
			showRadio: {
		      type: Boolean,
		      default: () => { return false }
		    },
			showCheckBox: {
			  type: Boolean,
			  default: () => { return true }
			},
		    disabled: {
		      type: Boolean,
		      default: () => { return false }
		    },
			props: {
				type: Object,
				default: () => {
					return {
						children: 'children',
						label: 'label'
					}
				}
			}
		  },
		mounted() {
			userService.treeData().then((data)=>{
				this.data = data
				this.setTreeList(this.data)
				let labelArra = []
				if(this.value){
					let keys = this.value.split(',')
					keys.forEach((id) => {
						this.treeList.forEach((node) => {
						  if (id === node.id) {
							labelArra.push(node.label)
						  }
						})
					 })
					this.labels = labelArra.join(',')
				}
			})
		},
		methods:{
			open () {
				this.show = true;
				if(this.value){
					this.$nextTick(()=>{
						let keys = this.value.split(',')
						this.$refs.userTree.setCheckedKeys(keys);
					})
				}
			},
			setTreeList (datas) { // 遍历树  获取id数组
			      for (var i in datas) {
			        this.treeList.push(datas[i])
			        if (datas[i].children) {
			          this.setTreeList(datas[i].children)
			        }
			      }
			    },
			selectUsers () {
				let ids = this.$refs.userTree.getCheckedNodes().filter((item)=>{
					return item.type === 'user'
				}).map((item)=>{
					return item.id
				}).join(",");
				let names = this.$refs.userTree.getCheckedNodes().filter((item)=>{
					return item.type === 'user'
				}).map((item)=>{
					return item.label
				}).join(",");
				this.labels = names
				this.$emit('input', ids)
				this.show = false
			}
		}
	}
</script>